package com.travel.server.manager.api;

import com.travel.server.manager.dto.request.EmptyRequest;
import com.travel.server.manager.dto.request.customer.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * @Author: LiZhenhui
 * @Date: 2018/10/18 15:36
 * @Desc:
 */
public interface ICustomerService {

    /**
     * 查询客户明细
     * @param request
     * @return
     */
    @RequestMapping(value = "query_customer_info_list", method = RequestMethod.POST)
    Object queryCustomerInfoList(QueryCustomerInfoListRequest request);

    /**
     * 查询客户详情
     * @param request
     * @return
     */
    @RequestMapping(value = "query_customer_info_detail", method = RequestMethod.POST)
    Object queryCustomerInfoDetail(QueryCustomerInfoDetailRequest request);

    /**
     * 修改客户标签/会员身份/积分
     * @param request
     * @return
     */
    @RequestMapping(value = "update_customer_other_info", method = RequestMethod.POST)
    Object updateCustomerOtherInfo(UpdateCustomerOtherInfoRequest request);

    /**
     * 删除客户
     * @param request
     * @return
     */
    @RequestMapping(value = "delete_customer_info", method = RequestMethod.POST)
    Object deleteCustomerInfo(DeleteCustomerInfoRequest request);

    /**
     * 修改客户基本信息
     * @param request
     * @return
     */
    @RequestMapping(value = "update_customer_base_info", method = RequestMethod.POST)
    Object updateCustomerBaseInfo(UpdateCustomerBaseInfoRequest request);

    /**
     * 添加客户
     * @param request
     * @return
     */
    @RequestMapping(value = "add_customer_info", method = RequestMethod.POST)
    Object addCustomerInfo(AddCustomerInfoRequest request);

    /**
     * 查询会员等级明细
     * @param request
     * @return
     */
    @RequestMapping(value = "query_member_grade_list", method = RequestMethod.POST)
    Object queryMemberGradeList(EmptyRequest request);

    /**
     * 编辑会员等级
     * @param request
     * @return
     */
    @RequestMapping(value = "update_member_grade_info", method = RequestMethod.POST)
    Object updateMemberGradeInfo(UpdateMemberGradeInfoRequest request);

    /**
     *  删除会员等级
     * @param request
     * @return
     */
    @RequestMapping(value = "delete_member_grade_info", method = RequestMethod.POST)
    Object deleteMemberGradeInfo(DeleteMemberGradeInfoRequest request);

    /**
     * 查询会员标签明细
     * @param request
     * @return
     */
    @RequestMapping(value = "query_tag_list", method = RequestMethod.POST)
    Object queryTagList(EmptyRequest request);

    /**
     * 编辑会员标签
     * @param request
     * @return
     */
    @RequestMapping(value = "update_tag_info", method = RequestMethod.POST)
    Object updateTagInfo(UpdateTagInfoRequest request);

    /**
     *  删除会员标签
     * @param request
     * @return
     */
    @RequestMapping(value = "delete_tag_info", method = RequestMethod.POST)
    Object deleteTagInfo(DeleteTagInfoRequest request);

    /**
     *  查询客户相关枚举（客户身份/标签）
     * @param request
     * @return
     */
    @RequestMapping(value = "query_customer_enum", method = RequestMethod.POST)
    Object queryCustomerEnum(EmptyRequest request);

    /**
     *  删除客户标签
     * @param request
     * @return
     */
    @RequestMapping(value = "delete_customer_tag", method = RequestMethod.POST)
    Object deleteCustomerTag(DeleteCustomerTagRequest request);
}
